package persistence;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import model.*;

public abstract class APSinTemporada {

	public static void insertarAPSinTemporada(SinTemporada prenda) {
		// Obtener conexion BD
		Connection con = AdministradorConexiones.getInstancia().crearConexion();

		// Generar sentencia SQL
		try {
			// Preparar sentencia insert en tabla destino
			String senten = "INSERT INTO Ropa (idRopa, nombre, precio, estado, tipoDeRopa) VALUES (?,?,?,1,'SinTemporada')";
			PreparedStatement ps = null;
			ps = con.prepareStatement(senten);
			ps.setInt(1, prenda.getCodigo());
			ps.setString(2, prenda.getNombre());
			ps.setFloat(3, prenda.getPrecio());
					
			ps.execute();

			AdministradorConexiones.getInstancia().cerrarConexion(con);
		} catch (SQLException e) {
			System.out.println("Mensaje Error al Insertar APSinTemporada: " + e.getMessage());
			System.out.println("Stack Trace al Insertar APSinTemporada: " + e.getStackTrace());
			AdministradorConexiones.getInstancia().cerrarConexion(con);
		}
	}

	public static SinTemporada buscarAPSinTemporada(int prendaId) {
		SinTemporada i = null;
		// Obtener conexion BD
		Connection con = AdministradorConexiones.getInstancia().crearConexion();

		// Generar sentencia SQL
		try {
			// Preparar sentencia select
			String senten = "SELECT * FROM Ropa where prendaId = ? and tipoDeRopa = 'SinTemporada'";
			PreparedStatement ps = null;
			ps = con.prepareStatement(senten);
			ps.setInt(1, prendaId);
			ResultSet result = ps.executeQuery();
			while (result.next()) {
				i = new SinTemporada(result.getInt("idRopa"), result.getString("nombre"));
			}

			AdministradorConexiones.getInstancia().cerrarConexion(con);
			return i;
		} catch (SQLException e) {
			System.out.println("Mensaje Error al Borrar APSinTemporada: " + e.getMessage());
			System.out.println("Stack Trace al Borrar APSinTemporada: " + e.getStackTrace());
			AdministradorConexiones.getInstancia().cerrarConexion(con);
		}
		return null;
	}

	public static void modificarAPSinTemporada(SinTemporada pre) {

		// Obtener conexion BD
		Connection con = AdministradorConexiones.getInstancia().crearConexion();

		// Generar sentencia SQL
		try {
			// Preparar sentencia insert en tabla destino
			String senten = "UPDATE Ropa set nombre = ? where idRopa = ? and TipoDeRopa = 'SinTemporada'";
			PreparedStatement ps = null;
			ps = con.prepareStatement(senten);
			ps.setString(1, pre.getNombre());
			ps.setInt(2, pre.getCodigo());
			ps.execute();

			AdministradorConexiones.getInstancia().cerrarConexion(con);

		} catch (SQLException e) {
			System.out.println("Mensaje Error al Modificar APSinTemporada: " + e.getMessage());
			System.out.println("Stack Trace al Modificar APSinTemporada: " + e.getStackTrace());
			AdministradorConexiones.getInstancia().cerrarConexion(con);
		}
	}


}

